package com.threadpool;

import java.util.concurrent.*;

public class ThreadPoolCreator {

    /**
     * 创建并返回ThreadPoolExecutor实例
     * 核心参数说明（根据任务特性配置）：
     * - 核心线程数2：长期存活的线程，处理常驻任务
     * - 最大线程数4：任务峰值时的最大线程数
     * - 空闲存活10秒：超出核心线程的临时线程，空闲10秒后销毁
     * - 队列容量10：任务等待队列，超出后触发拒绝策略
     */
    public static ThreadPoolExecutor createThreadPool() {
        return new ThreadPoolExecutor(
                2, // 核心线程数
                4, // 最大线程数
                10, // 空闲线程存活时间（单位：秒）
                TimeUnit.SECONDS,
                new LinkedBlockingQueue<>(10), // 任务阻塞队列（容量10）
                Executors.defaultThreadFactory(), // 默认线程工厂（命名线程）
                new ThreadPoolExecutor.AbortPolicy() // 拒绝策略：任务超出容量时抛异常
        );
    }
}